package thread;

import java.util.Scanner;

public class Demo16 {
    //写一个内部类，此时这个内部类就处在Demo16的内部，和刚才那个Counter不是一个作用域了
    static class Counter{
        //volatile public int flag=0;
        public int flag=0;

    }
    public static void main(String[] args) {
        Counter counter = new Counter();
        Thread t1 = new Thread(()->{
            while (counter.flag==0){
                //一开始的时候执行循环，但是此处循环啥都不做
                //后面
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }

            }
            System.out.println("t1 结束");

        });
        t1.start();
        Thread t2 = new Thread(()->{
            //让用户输入一个数字，赋值给flag
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个整数：");
            counter.flag = scanner.nextInt();
        });
        t2.start();

    }
}
/*
预期效果是，t2线程这里输入了一个非零的数字此时t1线程循环结束，随之进程结束
实际现象是：当我们输入非0的数字的时候，t1线程并没有结束
 */
